#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
@Time 2024-02-01 15:23
@Author: wanbo
@Despcription: for 循环
'''

# python中的for循环只能用来遍历列表和字典
# 在遍历列表过程中，item是原列表中元素的拷贝， 执行删除后依然可以对其进行操作
if(0):
    my_list = ["hello", 1, 2, 3, "bob"]
    for item in my_list:
        if (item == 2):
            del my_list[item]
        print(item)
    print(my_list)

# 要在遍历是取列表的索引与值， 使用enumerate
if(0):
    my_list = ["hello", 1, 2, 3, "bob"]
    for index, item in enumerate(my_list):
        print("index:{} item:{}".format(index, item))


# 使用 zip() 可以同时循环两个列表
# 两个列表长度不相等时， 与短的列表对其
if(0):
    list1 = ["a", "b", "c"]
    list2 = [1, 2, 3, 4, 5]
    for item1, item2 in zip(list1, list2):
        print("item1:{} item2:{}".format(item1, item2))


# 使用 range() 生成等差数列然后遍历
if(0):
    for i in range(5):
        print(i)

# 使用reversed翻转列表
if(0):
    list = reversed(range(6, 10))
    print(list)

# 使用set去除列表中的重复元素
if(1):
    my_list = [6, 2, 2, 3, 4, 1, 1, 1, 3, 5]
    print(sorted(set(my_list)))

# 使用sorted排序
my_list = [1, 9, 6, 2, 5, 3, 8, 4, 7]
if(0):
    for i in sorted(my_list):
        print(i)

# TODO: 不能在循环字典的过程中删除元素
if(0):
    my_dict = {"name": "bob", "age": 20, "gender": "male"}
    for key, value in my_dict.items():
        print("k:{} v:{}".format(key, value))


# 要删除原字典中的元素时， 通过遍历字典的拷贝来操作
if(0):
    for k, v in my_dict.copy().items():
        if (k == "age"):
            del my_dict[k]
        print("k:{} v:{}".format(k, v))
    print(my_dict)



